package com.yunchang.springboot.models.mwsreportbean;

import java.io.Serializable;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 亚马逊api获取payment表
 * </p>
 *
 * @author sjd
 * @since 2020-08-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("mws_payment")
@ApiModel(value="MwsPaymentDO对象", description="亚马逊api获取payment表")
public class MwsPaymentDO extends Model<MwsPaymentDO> {

    private static final long serialVersionUID = 1L;

    private String sellerId;

    private String area;

    @ApiModelProperty(value = "亚马逊为所报告的结算提供的唯一编码。这是一个数值。该值最少包含 1 位数，最多包含 20 位数。")
    private String settlementId;

    @ApiModelProperty(value = "结算周期的开始日期。这是一个字母数字值。该值一共含 25 个字符。（格林威治标准时间）")
    private LocalDateTime settlementStartDate;

    @ApiModelProperty(value = "结算周期的结束日期。这是一个字母数字值。该值一共含 25 个字符。（格林威治标准时间）")
    private LocalDateTime settlementEndDate;

    @ApiModelProperty(value = "结算周期内资金转账发送至卖家银行账户的日期。这是一个字母数字值。该值一共含 25 个字符。（格林威治标准时间）")
    private LocalDateTime depositDate;

    @ApiModelProperty(value = "存入卖家银行账户的销售金额。")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "交易货币。所有订单、盘点、费用和动作数据均采用同一货币。")
    private String currency;

    @ApiModelProperty(value = "交易类型的文本描述")
    private String transactionType;

    @ApiModelProperty(value = "亚马逊为订单提供的唯一可显示编号。这是一个字母数字值。要搜索包含字母的订单编号，请转至管理订单，因为并非所有工具都能搜索到它们。")
    private String orderId;

    @ApiModelProperty(value = "由亚马逊或卖家分配的编号")
    private String merchantOrderId;

    @ApiModelProperty(value = "盘点的交易编号")
    private String adjustmentId;

    @ApiModelProperty(value = "订单交易类型编号")
    private String shipmentId;

    @ApiModelProperty(value = "下单时所在商城的名称。该值为一个字符串，最多 50 个字符。")
    private String marketplaceName;

    @ApiModelProperty(value = "运费类型，如“订单”、“盘点”或“其他动作”。")
    private String shipmentFeeType;

    @ApiModelProperty(value = "运费金额")
    private BigDecimal shipmentFeeAmount;

    @ApiModelProperty(value = "订单费用金额列中的所收费用类型。")
    private String orderFeeType;

    @ApiModelProperty(value = "向此订单收取的特定费用金额。这是一个数值，整数部分最多由 18 位数组成，精确到小数点后两位。")
    private String orderFeeAmount;

    @ApiModelProperty(value = "配送类型，如卖家（卖家自行配送）或亚马逊")
    private String fulfillmentId;

    @ApiModelProperty(value = "从卖家账户支出或向卖家账户存入商品（订单、盘点、杂项或其他）金额的日期。这是一个字母数字值。该值一共含 25 个字符。")
    private LocalDateTime postedDate;

    @ApiModelProperty(value = "亚马逊为订单内商品提供的唯一可显示编号。这是一个数值。该值一共含 14 位数。")
    private String orderItemCode;

    @ApiModelProperty(value = "卖家订单项目id")
    private String merchantOrderItemId;

    @ApiModelProperty(value = "卖家调整项目id")
    private String merchantAdjustmentItemId;

    @ApiModelProperty(value = "用于商品且由卖家定义的唯一编码。这是一个字母数字值。该值最少包含 1 位数，最多包含 40 位数。")
    private String sku;

    @ApiModelProperty(value = "这些商品的购买数量。这是一个数值。该值最多包含 12 位数。")
    private Integer quantityPurchased;

    @ApiModelProperty(value = "“商品价格金额”列中指定的价格类型。")
    private String priceType;

    @ApiModelProperty(value = "买家根据“商品价格类型”列中指定的商品价格类型支付的金额。这是一个数值，整数部分最多由 18 位数组成，精确到小数点后两位。")
    private BigDecimal priceAmount;

    @ApiModelProperty(value = "“商品相关费用金额”列中的收费类型。")
    private String itemRelatedFeeType;

    @ApiModelProperty(value = "对此商品收取的相关特定费用金额。这是一个数值，整数部分最多由 18 位数组成，精确到小数点后两位。")
    private BigDecimal itemRelatedFeeAmount;

    @ApiModelProperty(value = "不再使用")
    private BigDecimal miscFeeAmount;

    @ApiModelProperty(value = "亚马逊将向您的卖家账户收取的杂费金额。")
    private BigDecimal otherFeeAmount;

    @ApiModelProperty(value = "与月度销售计划不相关的杂项费用。")
    private String otherFeeReasonDescription;

    @ApiModelProperty(value = "卖家指定的促销编号。这是一个字母数字值。该值最多包含 50 个字符。")
    private String promotionId;

    @ApiModelProperty(value = "“促销编号”列和“促销金额”列中的数值所涉及的促销类型。")
    private String promotionType;

    @ApiModelProperty(value = "根据“促销编号”列中指定的促销对商品应用的促销折扣金额。这是一个数值，整数部分最多由 18 位数组成，精确到小数点后两位。")
    private BigDecimal promotionAmount;

    @ApiModelProperty(value = "付款类型")
    private String directPaymentType;

    @ApiModelProperty(value = "付款金额")
    private BigDecimal directPaymentAmount;

    @ApiModelProperty(value = "不属于“订单”或“盘点”交易类型的其他扣款或存款。将在交易类型列中指定此金额的交易类型。")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "有Principal的数量")
    private Integer quantitySales;

    @ApiModelProperty(value = "总数量")
    private Integer quantitySummary;

    private LocalDateTime createTime;

    private LocalDateTime updateTime;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}
